---
description: 'Learn about the ecommerce features that Medusa provides including order management, product management, multi region and currency support, and more.'
hide_table_of_contents: true
---

import DocCardList from '@theme/DocCardList'
import Icons from '@theme/Icon'
import LargeCardList from '@site/src/components/LargeCardList'
import LargeCard from '@site/src/components/LargeCard'

# Commerce Modules

Medusa offers ecommerce features essential to all types of businesses as Commerce Modules. Starting from the basic products management and order management, to the more advanced automated return and exchange flows.

This part of the documentation covers Medusa’s ecommerce features and how they can be used. It also includes guides that help developers utilize these features to create unique digital experiences.

## Feature Highlights

This section gives an overview of the features available in Medusa. You can learn more about other available features by following the guides in this documentation.

### Optimized Shopping and Fulfillment Experience

Medusa provides the necessary features to build a customizable shopping experience for your customers. Medusa also offers features optimized for business operations to manage their orders effeciently.

<LargeCardList>
  <LargeCard
    Icon={Icons['check-circle-solid']}
    title='Orders'
    action={{
      label: 'Learn more',
      href: '/modules/orders/overview'
    }}
  >

  - Process orders' payments and fulfillments with custom logic or third-party providers.
  - Create one or multiple fulfillments for items in the order.
  - Edit an order to add, update, or delete its items.
  - Handle and automate order returns, exchanges, and refunds.
  - Create draft orders without direct involvement from the customer.


  </LargeCard>
  <LargeCard
    Icon={Icons['building-solid']}
    title='Inventory (Multi-Warehouse)'
    action={{
      label: 'Learn more',
      href: '/modules/multiwarehouse/overview'
    }}
  >

  - Create and manage multiple stock locations that represent where you physically store your products.
  - Manage the product variants' inventory across stock locations, and associate those locations with sales channels.
  - Associate order fulfillemnts and returns with a stock location. The management of inventory item quantity is handled automatically.


  </LargeCard>
  <LargeCard
    Icon={Icons['shopping-cart-solid']}
    title='Cart and Checkout'
    action={{
      label: 'Learn more',
      href: '/modules/carts-and-checkout/overview'
    }}
  >

  - Accept payments with payment processors including Stripe and PayPal.
  - Calculate taxes of a cart through custom logic or third-party tax providers.
  - Allow customers to apply discount codes and gift cards during checkout.
  - Fully customize the frontend experience of the checkout process.


  </LargeCard>
  <LargeCard
    Icon={Icons['users-solid']}
    title='Customers'
    action={{
      label: 'Learn more',
      href: '/modules/customers/overview'
    }}
  >

  - Allow orders from both registered and unregisterd customers.
  - Allow customers to create return or exchange requests from the storefront for better customer experience.
  - Assign customers different groups for segmentation and specify different pricing for customer groups.


  </LargeCard>
</LargeCardList>

### Advanced Product Configurations and Management

Medusa's products configuration allows managing products of different types including products with options and gift cards. Medusa also includes advanced features related to pricing and discounts.

<LargeCardList>
  <LargeCard
    Icon={Icons['tag-solid']}
    title='Products'
    action={{
      label: 'Learn more',
      href: '/modules/products/overview'
    }}
  >

  - Create products with unlimited variants and options.
  - Organize products into nested categories of different hierarchies.
  - Associate products with collections, types, and tags.
  - Manage a product’s inventory, pricing, sales channels, and more.
  - Import and export products to and from Medusa using CSV files.


  </LargeCard>
  <LargeCard
    Icon={Icons['gift-solid']}
    title='Gift Cards'
    action={{
      label: 'Learn more',
      href: '/modules/gift-cards/overview'
    }}
  >

  - Offer your customers a gift card with unlimited denominations.
  - Set denomination prices per currency to cater for different regions.
  - Send custom gift cards to specific customers for marketing purposes.
  - Manage a custom gift card's balance amount.


  </LargeCard>
  <LargeCard
    Icon={Icons['currency-dollar-solid']}
    title='Price Lists and Discounts'
    action={{
      label: 'Learn more',
      href: '/modules/price-lists/overview'
    }}
  >

  - Create discounts and deals with advanced conditions and rules such as minimum cart quantity or specific products.
  - Offer free shipping, fixed discount, or percentage discount.
  - Override product prices using price lists and set special conditions such as specific customer groups.
  - Import prices into a price list from a CSV file.


  </LargeCard>
</LargeCardList>

### Ready Configurations for International Selling

Medusa's multi-region setup and sales channels allow businesses to sell internationally and sell across platforms. Medusa allows configuring regions differently to cater for different markets across the globe.

<LargeCardList>
  <LargeCard
    Icon={Icons['globe-europe-solid']}
    title='Multi-Region'
    action={{
      label: 'Learn more',
      href: '/modules/regions-and-currencies/overview'
    }}
  >

  - Create an unlimited number of regions, each associated with a currency and at least one country.
  - Manage each region’s settings including payment processors, shipping options, and more.
  - Set prices for products and shipping options specific to a currency or a region.


  </LargeCard>
  <LargeCard
    Icon={Icons['cash-solid']}
    title='Taxes'
    action={{
      label: 'Learn more',
      href: '/modules/taxes/overview'
    }}
  >

  - Specify different tax providers for different regions.
  - Create tax providers using custom logic or third-party integrations.
  - Customize tax configurations using tax rates and tax overrides.
  - Enable tax-inclusive pricing for automatic tax-rate calculations during checkout.


  </LargeCard>
  <LargeCard
    Icon={Icons['channels-solid']}
    title='Sales Channels'
    action={{
      label: 'Learn more',
      href: '/modules/sales-channels/overview'
    }}
  >

  - Create sales channels for your different platforms such as web, mobile, or marketplaces.
  - Specify the availability of products for each sales channel.
  - Associate orders with each sales channel for better handling and logistics.
  - Associate API keys with sales channels for easier development.


  </LargeCard>
</LargeCardList>

## Get Additional Help

If you have any questions about Medusa, its features, and development with it, feel free to reach out to the core team and the community behind Medusa on [Discord](https://discord.gg/medusajs).

## Popular Guides

<DocCardList colSize={4} items={[
  {
    type: 'link',
    href: '/modules/customers/storefront/implement-customer-profiles',
    label: 'Implement Accounts',
    customProps: {
      icon: Icons['users-solid'],
      description: 'Add customer profiles to the storefront.',
    }
  },
  {
    type: 'link',
    href: '/modules/carts-and-checkout/storefront/implement-cart',
    label: 'Implement Cart',
    customProps: {
      icon: Icons['shopping-cart-solid'],
      description: 'Add cart functionality to the storefront.',
    }
  },
  {
    type: 'link',
    href: '/modules/carts-and-checkout/backend/add-payment-provider',
    label: 'Create a Payment Processor',
    customProps: {
      icon: Icons['credit-card-solid'],
      description: 'Learn how to create a payment processor.',
    },
  },
  {
    type: 'link',
    href: '/modules/orders/admin/edit-order',
    label: 'Edit an Order',
    customProps: {
      icon: Icons['pencil-square-solid'],
      description: 'Edit an order with the Admin APIs.',
    }
  },
  {
    type: 'link',
    href: '/modules/price-lists/admin/import-prices',
    label: 'Import Prices',
    customProps: {
      icon: Icons['currency-dollar-solid'],
      description: 'Import prices to Medusa.',
    }
  },
  {
    type: 'link',
    href: '/modules/sales-channels/admin/manage',
    label: 'Manage Sales Channels',
    customProps: {
      icon: Icons['channels-solid'],
      description: 'Manage sales channels.',
    }
  }
]} />
